package com.smart.community.region.dto;

import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;

/**
 * 住户查询条件DTO
 * 
 * 功能说明：
 * 1. 替代Map<String, Object>查询参数，提供强类型查询条件
 * 2. 遵循《Java后端SpringBoot代码开发规范.md》的DTO设计规范
 * 3. 避免Map类型转换异常，提高代码可读性和维护性
 * 4. 支持住户列表查询的各种条件过滤
 * 
 * @author Wu.Liang
 * @since 2025-01-30
 * @version 1.0.0
 */
@Data
@Accessors(chain = true)
public class ResidentQueryDTO implements Serializable {
    
    private static final long serialVersionUID = 1L;
    
    /**
     * 社区ID
     */
    private Long communityId;
    
    /**
     * 楼栋ID
     */
    private Long buildingId;
    
    /**
     * 单元ID
     */
    private Long unitId;
    
    /**
     * 房户ID
     */
    private Long householdId;
    
    /**
     * 住户姓名（模糊查询）
     */
    private String realName;
    
    /**
     * 住户类型
     * 1-业主 2-家属 3-租户
     */
    private Integer residentType;
    
    /**
     * 住户状态
     * 1-正常 2-已搬出
     */
    private Integer status;
    
    /**
     * 当前页码
     */
    private Integer current;
    
    /**
     * 每页条数
     */
    private Integer size;
    
    /**
     * 是否启用数据权限过滤
     * 默认启用
     */
    private Boolean enableDataPermission = true;
    
    /**
     * 是否启用地址信息补充
     * 默认启用
     */
    private Boolean enableAddressEnrichment = true;
}
